Lint
规则
- ESLint 规范 (集团规则 + 团队规则)
- Commit Message 规范
- angular 规范
- 团队规范: 每个 PR 需要至少关连一个 Aone 任务
- 分支和合并规范
- dev 分支走预发,所有需求开发从 dev 分支签出。
- master 分支默认上正式环境。但是有班车机制,不是每次正式发布之后的代码都会直接合并 master,需要所有 region 全拉平之后才会合并至 master。
- 团队的核心模块需要 2 个人 check 之后才可以通过;其余 1 人通过即可。
- 合并代码推荐使用 squash 方式,但是不强制。
- Husky + lint-staged + commitlint + Prettier (本地开启)
Git
几种合并方式的区别
- merge 会多出一个 merge commit,commit message 会保留。坏处是 commit 记录中会多出很多 merge commit 节点。
- rebase 会将本地 pr 的所有 commit 重新合并至目标分支,commit message。坏处是多人开发时,可能会需要后开发的同学,强制推送自己的分支。
- squash 会将本地 pr 的所有 commit 压成一个 commit,然后再合并至目标分支,commit message 可以重新定义一遍。 VS Code 默认采用的就是这种方式。好处是 commit 记录会非常清晰,会少很多测试 commit,坏处是如果有多个人同时在开发,会导致 commit 记录非常混乱,不利于代码 review。